home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 2207 / 2207.xpi / chrome / cooliris.jar / content / cooliris / coolirisImagePreviews.js < prev    next >
Text File  |  2010-01-28  |  16KB  |  510 lines

  1. cpvw_clsPreviewImages.prototype=new cpvw_clsPreview;
  2. function cpvw_clsPreviewImages(_1,_2){
  3. this.parentDoc=_1;
  4. this.customSite=_2;
  5. this.convertLinks();
  6. this.prefetchDelay=6000;
  7. this.openDelayTime=800;
  8. this.closeDelayTime=0;
  9. this.actualImgUrl="";
  10. var _3=cpvw_docHandler.parentDoc.isPrefetchSet;
  11. if(_3==null||_3==false){
  12. var _4=cpvw_prefHandler.getPref(cpvw_Prefs.prefPreviewPrefetch);
  13. if(_4=="yes"){
  14. cpvw_docHandler.parentDoc.isPrefetchSet=true;
  15. this.startPrefetch();
  16. }
  17. }
  18. }
  19. cpvw_clsPreviewImages.prototype.setup=function(){
  20. var _5=cpvw_previewHandler.getPreviewWindow();
  21. var _6=cpvw_previewHandler.getPreviewFrame();
  22. if(!cpvw_jsUtils.isFF2()){
  23. _6.loadURI("chrome://cooliris/content/coolirisPreviewImages.htm");
  24. }else{
  25. _6.setAttribute("src","chrome://cooliris/content/coolirisPreviewImages.htm");
  26. }
  27. _6.addEventListener("DOMContentLoaded",cpvw_previewHandler,false);
  28. var _7=this.parentDoc;
  29. if(_7.loadPiclensJS!=1){
  30. _7.loadPiclensJS=1;
  31. var _8=_7.createElement("script");
  32. _8.setAttribute("type","text/javascript");
  33. _8.setAttribute("src","http://lite.piclens.com/current/piclens.js");
  34. var _9=_7.getElementsByTagName("head")[0];
  35. if(_9){
  36. _9.appendChild(_8);
  37. }else{
  38. if(_7.body){
  39. _7.body.appendChild(_8);
  40. }
  41. }
  42. }
  43. };
  44. cpvw_clsPreviewImages.prototype.startPrefetch=function(){
  45. var _a=new XPCNativeWrapper(window._content,"document").document;
  46. if(_a!=this.parentDoc){
  47. this.prefetchIndex=this.prefetchLinks.length;
  48. }
  49. if(this.prefetchIndex>=this.prefetchLinks.length){
  50. return;
  51. }
  52. var _b=this;
  53. var _c=this.prefetchLinks[this.prefetchIndex];
  54. var _d=document.getElementById("frmPrefetch");
  55. if(_d==null){
  56. _d=document.createElement("browser");
  57. _d.setAttribute("id","frmPrefetch");
  58. _d.setAttribute("type","content");
  59. _d.setAttribute("src",_c);
  60. _d.setAttribute("style","visibility:hidden;overflow:auto;scrolling:yes;border:0px solid black;background-color:white;width:0px;height:0px;");
  61. document.getElementById("main-window").appendChild(_d);
  62. _d.addEventListener("load",function(_e){
  63. _b.afterPrefetch("onload");
  64. },true);
  65. }else{
  66. _d.setAttribute("src",_c);
  67. }
  68. _d.docShell.allowJavascript=false;
  69. _d.docShell.allowMetaRedirects=false;
  70. _d.docShell.allowAuth=false;
  71. _d.docShell.allowPlugins=false;
  72. _d.docShell.allowSubframes=false;
  73. this.prefetchTimer=setTimeout(function(){
  74. _b.afterPrefetch("timeout");
  75. },this.prefetchDelay);
  76. };
  77. cpvw_clsPreviewImages.prototype.afterPrefetch=function(_f){
  78. if(this.prefetchTimer){
  79. clearTimeout(this.prefetchTimer);
  80. }
  81. this.prefetchIndex++;
  82. if(this.prefetchIndex>=this.prefetchLinks.length){
  83. var _10=document.getElementById("frmPrefetch");
  84. document.getElementById("main-window").removeChild(_10);
  85. return;
  86. }
  87. this.startPrefetch();
  88. };
  89. cpvw_clsPreviewImages.prototype.convertLinks=function(){
  90. var doc=this.parentDoc;
  91. var _12=doc.getElementsByTagName("IMG");
  92. for(var i=0;i<_12.length;i++){
  93. _12[i].addEventListener("mouseover",function(evt){
  94. var _15=Components.classes["@cooliris.com/piclens/manager;1"];
  95. if(_15){
  96. cpvw_imageDocHandler.previewOpen(evt,this.href,this);
  97. }else{
  98. cpvw_imageDocHandler.initPreviewShow(evt,this.href,this);
  99. }
  100. },true);
  101. _12[i].addEventListener("mouseout",function(evt){
  102. conDump("mouseout");
  103. cpvw_imageDocHandler.initPreviewHide(evt);
  104. },true);
  105. if(cpvw_jsUtils.trimWhitespace(_12[i].src)!=""){
  106. this.prefetchLinks.push(_12[i].src);
  107. }
  108. }
  109. };
  110. cpvw_clsPreviewImages.prototype.initPreviewShow=function(evt,_18,img){
  111. this.clearTimer(this.hideTimer);
  112. var _1a=img.parentNode.href;
  113. this.closeDelayTime=0;
  114. var _1b=img.getAttribute("src");
  115. var uri=Components.classes["@mozilla.org/network/standard-url;1"].createInstance(Components.interfaces.nsIURI);
  116. uri.spec=this.parentDoc.URL;
  117. if(uri.host=="images.google.com"){
  118. _1b=img.getAttribute("src");
  119. }
  120. var _1d=cpvw_imageDocHandler.parentDoc.enablePreview;
  121. conDump("temp href = "+_1d);
  122. if(!_1d){
  123. return;
  124. }
  125. _1a=_1a;
  126. this.pageX=evt.pageX;
  127. this.pageY=evt.pageY;
  128. if(this.linkUrl==_1a&&this.isShowingPreview){
  129. conDump("same image url");
  130. return;
  131. }
  132. var _1e=new cpvw_previewSize(10000,10000,0,0);
  133. if(!this.isShowingPreview){
  134. cpvw_previewHandler.showPreview(_1e,this.customSite,true,true);
  135. }
  136. if(cpvw_imageDocHandler.coolirisOpen){
  137. return;
  138. }
  139. var _1f=cpvw_previewHandler.getPreviewFrame();
  140. if(_1f.contentDocument&&_1f.contentDocument.URL!="chrome://cooliris/content/coolirisPreviewImages.htm"){
  141. this.setup();
  142. }
  143. this.popTimer=setTimeout(function(){
  144. cpvw_imageDocHandler.showPreview(_1a,_1b);
  145. },this.openDelayTime);
  146. };
  147. cpvw_clsPreviewImages.prototype.initPreviewHide=function(evt){
  148. cpvw_imageDocHandler.clearTimer(cpvw_imageDocHandler.popTimer);
  149. conDump("In image hide "+cpvw_imageDocHandler.isShowingPreview+", "+cpvw_Delays.CLOSE_DELAY_TIME+", "+cpvw_imageDocHandler.closeDelayTime);
  150. if(!cpvw_imageDocHandler.isShowingPreview){
  151. return;
  152. }
  153. cpvw_imageDocHandler.hideTimer=setTimeout(function(){
  154. conDump("In image hide123 "+cpvw_imageDocHandler.isShowingPreview);
  155. cpvw_imageDocHandler.hidePreview();
  156. cpvw_imageDocHandler.coolirisOpen=false;
  157. },cpvw_Delays.CLOSE_DELAY_TIME+cpvw_imageDocHandler.closeDelayTime);
  158. };
  159. cpvw_clsPreviewImages.prototype.showPreview=function(_21,_22){
  160. if(this.popTimer==null){
  161. return;
  162. }
  163. this.clearTimer(this.hideTimer);
  164. var _23,_24;
  165. var _25="";
  166. if(this.customSite=="google_images"){
  167. var _26=_21.substring(_21.indexOf("?")+1,_21.length);
  168. var _27=_26.split("&");
  169. for(var i=0;i<_27.length;i++){
  170. if(_27[i].indexOf("imgurl")!=-1){
  171. var _29=_27[i].split("=");
  172. conDump("queryString = "+unescape(_29[1]),true);
  173. _25=unescape(_29[1]);
  174. break;
  175. }
  176. }
  177. }else{
  178. if(this.customSite=="yahoo_images"){
  179. var _26=_21.substring(_21.indexOf("imgurl"),_21.length);
  180. _26=unescape(_26);
  181. var _27=_26.split("&");
  182. for(var i=0;i<_27.length;i++){
  183. if(_27[i].indexOf("imgurl")!=-1){
  184. var _29=_27[i].split("=");
  185. _25="http://"+unescape(_29[1]);
  186. break;
  187. }
  188. }
  189. }
  190. }
  191. var _2a=this;
  192. cpvw_previewHandler.isContextMenu=false;
  193. _24=cpvw_previewHandler.getPreviewFrame();
  194. var _2b=_24.contentDocument;
  195. var _2c=_2b.getElementById("divImagePreview");
  196. _2c.innerHTML="";
  197. var _2d=_2b.createElement("IMG");
  198. _2d.setAttribute("id","tmpImgPreview");
  199. _2d.setAttribute("src",_22);
  200. var _2e=_2b.createElement("IMG");
  201. _2e.setAttribute("id","imgPreview");
  202. _2e.setAttribute("src",_25);
  203. _2e.setAttribute("style","visibility:hidden");
  204. _2c.appendChild(_2d);
  205. _2c.appendChild(_2e);
  206. _2d.addEventListener("load",_2a.previewOnLoadThumbnail,true);
  207. _2e.addEventListener("load",_2a.previewOnLoadRealImg,true);
  208. this.linkUrl=_21;
  209. this.actualImgUrl=_25;
  210. this.isShowingPreview=true;
  211. this.parentDoc.addEventListener("click",_2a.hidePreview,true);
  212. };
  213. cpvw_clsPreviewImages.prototype.previewOnLoadRealImg=function(evt){
  214. var _30=cpvw_previewHandler.getPreviewFrame();
  215. var _31=_30.contentDocument;
  216. cpvw_previewHandler.isLoaded=true;
  217. var _32=_31.getElementById("tmpImgPreview");
  218. _32.style.visibility="hidden";
  219. _32.style.display="none";
  220. var _33=_31.getElementById("imgPreview");
  221. _33.style.visibility="visible";
  222. cpvw_imageDocHandler.setPreviewDimensions(true);
  223. cpvw_previewHandler.numPages++;
  224. };
  225. cpvw_clsPreviewImages.prototype.previewOnLoadThumbnail=function(evt){
  226. var _35=cpvw_previewHandler.getPreviewFrame();
  227. var _36=_35.contentDocument;
  228. var _37=_36.getElementById("imgPreview");
  229. var _38=_36.getElementById("tmpImgPreview");
  230. if(_38.style.visibility!="hidden"){
  231. _38.style.visibility="visible";
  232. _38.style.display="block";
  233. _37.style.visibility="hidden";
  234. cpvw_imageDocHandler.setPreviewDimensions(false);
  235. }
  236. };
  237. cpvw_clsPreviewImages.prototype.hidePreview=function(){
  238. if(cpvw_imageDocHandler.hideTimer==null){
  239. return;
  240. }
  241. try{
  242. var _39=cpvw_previewHandler.hidePreview();
  243. if(_39){
  244. cpvw_imageDocHandler.isShowingPreview=false;
  245. }
  246. }
  247. catch(ex){
  248. }
  249. };
  250. cpvw_clsPreviewImages.prototype.setPreviewDimensions=function(_3a){
  251. frmPreview=cpvw_previewHandler.getPreviewFrame();
  252. var _3b=frmPreview.contentDocument;
  253. var doc=this.parentDoc;
  254. var _3d=document.getElementById("appcontent").boxObject.y+30;
  255. var _3e=this.pageX,_3f=this.pageY;
  256. this.dimPreview=new cpvw_previewSize();
  257. var _40=_3b.getElementById("imgPreview");
  258. var _41=_3b.getElementById("tmpImgPreview");
  259. if(_41!=null&&_41.style.display=="none"){
  260. _3a=true;
  261. }
  262. var _42=(_3e<doc.body.clientWidth/2)?doc.body.clientWidth-_3e-40:_3e-40;
  263. var _43=screen.availHeight-document.getElementById("appcontent").boxObject.y-120;
  264. var _44=_40.width/_40.height;
  265. var _45=_44>_42/_43?_42:_43*_44;
  266. var _46=_44>_42/_43?_42/_44:_43;
  267. _45=_45>_40.width?_40.width:_45;
  268. _46=_46>_40.height?_40.height:_46;
  269. this.dimPreview.width=(_3a)?_45:_41.width*1.5;
  270. this.dimPreview.height=(_3a)?_46:_41.height*1.5;
  271. this.dimPreview.top=_3d+5;
  272. if(_3a){
  273. _40.width=_45;
  274. _40.height=_46;
  275. }else{
  276. _41.width=this.dimPreview.width;
  277. _41.height=this.dimPreview.height;
  278. }
  279. if(_3e<doc.body.clientWidth/2){
  280. this.dimPreview.left=(_3e+40)<200?200:_3e+40;
  281. }else{
  282. this.dimPreview.left=10;
  283. }
  284. this.dimPreview.width+=20;
  285. this.dimPreview.height+=60;
  286. if(this.dimPreview.width<500){
  287. this.dimPreview.width=500;
  288. }
  289. var _47=cpvw_prefHandler.getPref(cpvw_Prefs.prefPreviewFixedLoc);
  290. if(_47=="yes"){
  291. var _48=cpvw_prefHandler.getPref(cpvw_Prefs.prefPreviewLoc);
  292. if(_48.indexOf(",")!=-1){
  293. this.dimPreview.left=parseInt(_48.split(",")[0]);
  294. this.dimPreview.top=parseInt(_48.split(",")[1]);
  295. }
  296. }
  297. cpvw_previewHandler.showPreview(this.dimPreview,this.customSite,true,true);
  298. };
  299. cpvw_clsPreviewImages.prototype.startPiclensLite=function(){
  300. var doc=this.parentDoc;
  301. if(doc.loadPiclensJS!=1){
  302. doc.loadPiclensJS=1;
  303. var _4a=doc.createElement("script");
  304. _4a.setAttribute("type","text/javascript");
  305. _4a.setAttribute("src","http://lite.piclens.com/current/piclens.js");
  306. var _4b=doc.getElementsByTagName("head")[0];
  307. if(_4b!=null){
  308. _4b.appendChild(_4a);
  309. }else{
  310. if(doc.body!=null){
  311. doc.body.appendChild(_4a);
  312. }
  313. }
  314. }
  315. var _4c=this.parWindow;
  316. var _4d=[];
  317. var _4e=doc.getElementsByTagName("IMG");
  318. for(var i=0;i<_4e.length;i++){
  319. var img=_4e[i];
  320. var _51=img.parentNode.href;
  321. if(_51==null){
  322. continue;
  323. }
  324. var _52=img.getAttribute("src");
  325. var _53=_52;
  326. if(this.customSite=="google_images"){
  327. if(_52=="images_logo.gif"){
  328. continue;
  329. }
  330. var _54=_51.substring(_51.indexOf("?")+1,_51.length);
  331. var _55=_54.split("&");
  332. for(var j=0;j<_55.length;j++){
  333. if(_55[j].indexOf("imgurl")!=-1){
  334. var _57=_55[j].split("=");
  335. _53=decodeURI(_57[1]);
  336. break;
  337. }
  338. }
  339. }else{
  340. if(this.customSite=="yahoo_images"){
  341. if(_51.indexOf("images/view")==-1){
  342. continue;
  343. }
  344. var _54=_51.substring(_51.indexOf("imgurl"),_51.length);
  345. _54=unescape(_54);
  346. var _55=_54.split("&");
  347. for(var j=0;j<_55.length;j++){
  348. if(_55[j].indexOf("imgurl")!=-1){
  349. var _57=_55[j].split("=");
  350. _53="http://"+unescape(_57[1]);
  351. break;
  352. }
  353. }
  354. }
  355. }
  356. _4d.push({"src":_53,"thumbnailSrc":_52});
  357. }
  358. cpvw_objStats.sendButtonClickEvents("CoolirisLiteLaunch");
  359. setTimeout(function(){
  360. cpvw_jsUtils.showPiclensLite(_4c,doc.title,doc.URL,_4d,false);
  361. },1000);
  362. };
  363. cpvw_clsContextMenu.prototype=new cpvw_clsPreview;
  364. function cpvw_clsContextMenu(){
  365. this.selectStr="";
  366. this.siteType="";
  367. this.menuType="";
  368. this.openDelayTime=1000;
  369. }
  370. cpvw_clsContextMenu.prototype.initPreviewShow=function(_58,how,evt){
  371. cpvw_objContextMenu.clearTimer(cpvw_objContextMenu.hideTimer);
  372. var _5b=this.selectStr;
  373. cpvw_subSearchBar.selectedText=this.selectStr;
  374. var _5c=cpvw_contextSitesTreeView.getUrl(_58.value,_5b);
  375. this.menuType="right-click";
  376. if(how=="click"){
  377. var _5d=cpvw_prefHandler.getPref(cpvw_Prefs.prefCMenuItems);
  378. var _5e=_5d.split(",");
  379. cpvw_objStats.sendButtonClickEvents("SearchMenuItemInTab : "+_5e[parseInt(_58.value)].toString());
  380. getBrowser().selectedTab=getBrowser().addTab(_5c);
  381. evt.stopPropagation();
  382. return;
  383. }
  384. var _5f=cpvw_prefHandler.getPref(cpvw_Prefs.prefPreviewEnable);
  385. if(_5f=="no"){
  386. return;
  387. }
  388. if(_5c==this.linkUrl&&this.isShowingPreview){
  389. this.setPreviewDimensions();
  390. return;
  391. }
  392. this.parentDoc.addEventListener("click",cpvw_objContextMenu.initPreviewHide,false);
  393. var _5d=cpvw_prefHandler.getPref(cpvw_Prefs.prefCMenuItems);
  394. var _5e=_5d.split(",");
  395. if(cpvw_jsUtils.trimWhitespace(_5e[_58.value].toString())=="cooliris"){
  396. cpvw_previewHandler.dimPreview.width=950;
  397. cpvw_previewHandler.dimPreview.height=675;
  398. cpvw_previewHandler.pushpin=true;
  399. cpvw_previewHandler.updatePushpinIcon();
  400. cpvw_previewHandler.changeDimensions(cpvw_previewHandler.dimPreview.left,cpvw_previewHandler.dimPreview.top,cpvw_previewHandler.dimPreview.width,cpvw_previewHandler.dimPreview.height,true);
  401. this.popTimer=setTimeout(function(){
  402. cpvw_objContextMenu.showPreview(_5c,_58.value);
  403. cpvw_objStats.sendButtonClickEvents("Cooliris");
  404. },this.openDelayTime);
  405. }else{
  406. this.popTimer=setTimeout(function(){
  407. cpvw_objContextMenu.showPreview(_5c,_58.value);
  408. },this.openDelayTime);
  409. }
  410. this.dispTimer=setTimeout(function(){
  411. cpvw_objContextMenu.displayPreview();
  412. },this.dispDelayTime);
  413. };
  414. cpvw_clsContextMenu.prototype.initPreviewHide=function(evt){
  415. cpvw_objContextMenu.clearTimer(cpvw_objContextMenu.popTimer);
  416. cpvw_objContextMenu.clearTimer(cpvw_objContextMenu.dispTimer);
  417. if(!cpvw_objContextMenu.isShowingPreview){
  418. return;
  419. }
  420. cpvw_objContextMenu.hideTimer=setTimeout(function(){
  421. cpvw_objContextMenu.hidePreview(false);
  422. },cpvw_Delays.CLOSE_DELAY_TIME);
  423. };
  424. cpvw_clsContextMenu.prototype.showPreview=function(_61,_62){
  425. if(this.popTimer==null){
  426. return;
  427. }
  428. var _63=cpvw_prefHandler.getPref(cpvw_Prefs.prefCMenuItems);
  429. var _64=_63.split(",");
  430. cpvw_objStats.sendButtonClickEvents("SearchMenuItem : "+_64[parseInt(_62)].toString());
  431. var _65,_66;
  432. this.linkUrl=_61;
  433. this.setPreviewDimensions();
  434. this.siteType=_62;
  435. cpvw_previewHandler.isContextMenu=true;
  436. _66=cpvw_previewHandler.getPreviewFrame();
  437. _66.setAttribute("src",this.linkUrl);
  438. _66.removeEventListener("load",cpvw_previewHandler.pageLoad,true);
  439. _66.addEventListener("load",cpvw_previewHandler.pageLoad,true);
  440. this.isShowingPreview=true;
  441. };
  442. cpvw_clsContextMenu.prototype.displayPreview=function(){
  443. if(this.dispTimer==null){
  444. return;
  445. }
  446. if(this.dimPreview==null){
  447. this.setPreviewDimensions();
  448. }
  449. cpvw_previewHandler.showPreview(this.dimPreview);
  450. cpvw_subSearchBar.showSearchBar();
  451. };
  452. cpvw_clsContextMenu.prototype.setPreviewDimensions=function(){
  453. var doc=this.parentDoc;
  454. var _68=document.getElementById("appcontent").boxObject.y+30;
  455. cpvw_objContextMenu.dimPreview=new cpvw_previewSize();
  456. var _69=document.getElementById("contentAreaContextMenu");
  457. if(_69.boxObject.x>doc.body.clientWidth/2){
  458. cpvw_objContextMenu.dimPreview.left=10;
  459. cpvw_objContextMenu.dimPreview.width=_69.boxObject.x-20;
  460. }else{
  461. cpvw_objContextMenu.dimPreview.left=_69.boxObject.x+_69.boxObject.width+10;
  462. cpvw_objContextMenu.dimPreview.width=(doc.body.clientWidth)-(_69.boxObject.x+_69.boxObject.width)-20;
  463. }
  464. this.dimPreview.top=_68;
  465. var _6a=cpvw_prefHandler.getPref(cpvw_Prefs.prefPreviewFixedLoc);
  466. if(_6a=="yes"){
  467. var _6b=cpvw_prefHandler.getPref(cpvw_Prefs.prefPreviewLoc);
  468. if(_6b.indexOf(",")!=-1){
  469. this.dimPreview.left=parseInt(_6b.split(",")[0]);
  470. this.dimPreview.top=parseInt(_6b.split(",")[1]);
  471. }
  472. }
  473. this.dimPreview.height=document.getElementById("appcontent").boxObject.height-45;
  474. };
  475. cpvw_clsContextMenu.prototype.previewOnLoad=function(){
  476. var _6c=cpvw_objContextMenu.siteType;
  477. var _6d=cpvw_previewHandler.getPreviewFrame();
  478. if(_6d==null){
  479. return;
  480. }
  481. var _6e=_6d.contentDocument;
  482. };
  483. cpvw_clsContextMenu.prototype.highlightText=function(how){
  484. var _70="";
  485. var _71=cpvw_previewHandler.getPreviewFrame();
  486. if(_71.contentDocument!=null&&_71.contentDocument.body!=null){
  487. _70=cpvw_objContextMenu.selectStr;
  488. if(_70==""){
  489. return;
  490. }
  491. this.arrHighlightText=_70.split(" ");
  492. if(this.arrHighlightText==null){
  493. return;
  494. }
  495. if(how=="show"){
  496. for(var i=0;i<this.arrHighlightText.length;i++){
  497. this.highlightWord("#FFFF99","black",this.arrHighlightText[i],_71.contentWindow);
  498. }
  499. this.doneHighlight=true;
  500. }else{
  501. for(var i=0;i<this.arrHighlightText.length;i++){
  502. this.removeHighlight(this.arrHighlightText[i],_71.contentWindow);
  503. }
  504. this.doneHighlight=false;
  505. }
  506. }
  507. };
  508. var cpvw_objContextMenu=new cpvw_clsContextMenu();
  509.  
  510.